package com.hjm.project.settleInfo.settleInfo.mapper;

import com.hjm.framework.aspectj.lang.annotation.DataSource;
import com.hjm.framework.aspectj.lang.enums.DataSourceType;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 清结算Mapper接口
 *
 * @author LOVE
 * @date 2020-11-23
 */
public interface SettleInfoMapper {

    /**
     *未出款数据
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getUnPayPageList(Map<String,Object> params);


    public List<Map<String,Object>> getMerPaiList(Map<String,Object> params);

    /**
     * 代付对账查询
     * @Param [params]
     * @Return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     */
    public List<Map<String,Object>> tradeNoQsList(Map<String,Object> params);

    /**
     * 查询今日单号
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getDateOrdernumber(Map<String,Object> params);

    /**
     *审核单
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getOrderPageList(Map<String,Object> params);

    /**
     *交易未清算
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> showNoqingsuan(Map<String,Object> params);

    /**
     * 线上交易未清算
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> showNoqingsuanOnline(Map<String,Object> params);

    /**
     * 清算未出款
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> showNoChukuan(Map<String,Object> params);

    /**
     * 清结算管理 商户出款冻结查询
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getUnpayTranddelList(Map<String,Object> params);

    /**
     * 扣款数据
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getDeductPageList(Map<String,Object> params);

    /**
     * 历史打款单
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getRemittanceBillsList(Map<String,Object> params);
    /**
     * 商户未结款
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getMerchantUnPay(Map<String,Object> params);
    /**
     * 应付数据
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getPayAbleList(Map<String,Object> params);


    /**
     * 校验交易未清算流水
     * @Param [params]
     * @Return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     */
    public List<Map<String,Object>> getSerialByQs(Map<String,Object> params);

    /**
     * 校验线上交易未清算流水
     * @Param [params]
     * @Return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     */
    public List<Map<String,Object>> getSerialByQsOnline(Map<String,Object> params);


    /**
     * 获取一条出款记录
     * @Param [params]
     * @Return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     */
    public Map<String,Object> getThawStatus(Map<String,Object> params);

    /**
     * 更新出款数据  -3-冻结 修改为 0-待处理
     * @Param [params]
     * @Return int
     */
    public int saveThawStatus(Map<String,Object> params);

    /**
     * 获取钱宝代付对账文件
     * @Param [params]
     * @Return java.util.Map<java.lang.String, java.lang.Object>
     */
    @DataSource(DataSourceType.CLEARING)
    public Map<String,Object> getDzInfo(Map<String,Object> params);


    /**
     * 获取交易信息
     * @Param [params]
     * @Return java.util.Map<java.lang.String, java.lang.Object>
     */
    public Map<String,Object> getPayInfo(Map<String,Object> params);

    /**
     * 线上交易
     * @Param [params]
     * @Return java.util.Map<java.lang.String, java.lang.Object>
     */
    public Map<String,Object> getPayOnLineInfo(Map<String,Object> params);

    /**
     * 更新钱宝代付对账文件
     * @Param [params]
     * @Return java.util.Map<java.lang.String, java.lang.Object>
     */
    @DataSource(DataSourceType.CLEARING)
    public int updateDzInfo(Map<String,Object> params);

    /**
     * 新增钱宝代付对账文件
     * @Param [params]
     * @Return java.util.Map<java.lang.String, java.lang.Object>
     */
    @DataSource(DataSourceType.CLEARING)
    public int insertDzInfo(Map<String,Object> params);

    /**
     * 商户上游编号
     * @Param [params]
     * @Return int
     */
    public Map getMerLdMerno(String mer_no);


    /**
     * 校验需要手动出款的数据
     * @Param [mer_no]
     * @Return java.util.List<java.util.Map>
     */
    public List<Map<String,Object>> getInputMoney(Map<String,Object> params);

    int updateMerPaid(@Param("settle_state") String settle_state, @Param("note")String note, @Param("settle_serial") String settle_serial);


}
